
// 获取非行内样式
function getStyle(ele,attr){
    var style;
    if(window.getComputedStyle){
        style = window.getComputedStyle(ele)[attr];
    }else{
        style = ele.currentStyle[attr];
    }
    return style;
}


// 两个时间的时差
function fun(date1, date2) {
    // 取绝对值
    var time = Math.abs(date1 - date2);
    // 天
    var d = parseInt(time / 1000 / 60 / 60 / 24);
    // 小时
    var h = parseInt((time / 1000 / 60 / 60) % 24);
    h =h < 10 ? '0' + h : h;
    // 分
    var min = parseInt((time / 1000 / 60) % 60);
    min = min < 10 ? '0' + min : min;
    // 秒
    var s = parseInt((time / 1000) % 60);
    s = s < 10 ? '0' + s : s;
   return {
       day:d,
       hour:h,
       mins:min,
       sec:s
   }
}

// 封装时间对象
function format(date) {
    // 2020-04-07 15:30:32 星期六
    // 星期天 -- 0
    var week = [
        "星期天",
        "星期一",
        "星期二",
        "星期三",
        "星期四",
        "星期五",
        "星期六",
    ];
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m >= 10 ? m : "0" + m;
    var d = date.getDate();
    d = d >= 10 ? d : "0" + d;

    var h = date.getHours();
    h = h >= 10 ? h : "0" + h;
    var mm = date.getMinutes();
    mm = mm >= 10 ? mm : "0" + mm;
    var c = date.getSeconds();
    c = c >= 10 ? c : "0" + c;

    var w = date.getDay();

    // console.log(`${y}-${m}-${d}  ${h}:${mm}:${c} ${week[w]}`);
    // return `${y}-${m}-${d}  ${h}:${mm}:${c} ${week[w]}`;
    // 如果直接返回 字符串（拼接） 函数外面使用的时候 功能比较受限制
    // 返回对象的形式
    return {
        years: y,
        month: m,
        date: d,
        hours: h,
        minutes: mm,
        seconds: c,
        week: week[w],
    };
}


// 移动动画
function move(ele, obj,callback) {

    let leng = 0;
    //*********
    //  for in 用var变量定义的话 只声明一个变量（var有预解析）
    //  for in 用let定义变量的话 会每一次都定义一个变量
    // ******
    for (let arr in obj) {
        // 来计算有多少个计时器
        // 有多少个属性就有多少个计时器
        leng++;
        clearInterval(ele[arr]);
        ele[arr] = setInterval(() => {
            //    获取非行内样式的值  引入了外部js 方法的geyStyle（）
            var lf = parseInt(getStyle(ele, arr));

            var speed = (obj[arr] - lf) / 10;
         
            // 当要加的值大于0时  就直接加1  小于0时 就加0
            speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
           
            lf += speed;
            ele.style[arr] = lf + 'px';

            console.log(arr, ele.style[arr]);

            if (obj[arr] == lf) {
                clearInterval(ele[arr]);
                // 当有一个计时器结束时 leng就-1
                // leng=0时就代表没有计时器在运行
                leng--;
                if (leng == 0) {
                    // 如果第三个参数存在就执行右边的 不在就不执行
                    callback && callback();
                }
            }
        }, 1000);
    }
}